'use strict';
console.log('Load O2O: ' + module.id);
let F = require('./function');
let Dao = require('./dao');
let wikiDispatcher = new Dao.wiki();

function* api() {
}
exports.api = api;

/**
 * @todo 添加
 * @param Env
 */
api.add = function*(Env) {
  Env.I = yield F.Init(Env, [1]);
  if (Env.I.errors) {
    return F.returnMsg(400, Env.I.errors.msg, Env.I.errors.level);
  }
  var fields = Env.I;


  let ret = yield wikiDispatcher.add(fields);
  if (ret.error == 1) return F.returnMsg(400, ret.msg, 3);
  return F.returnMsg(200, ret.msg, 3, ret.data);

};

/**
 * @todo 更新
 * @param Env
 */
api.update = function*(Env) {
  Env.I = yield F.Init(Env, [1]);
  if (Env.I.errors) {
    return F.returnMsg(400, Env.I.errors.msg, Env.I.errors.level);
  }
  var fields = Env.I;

  let ret = yield wikiDispatcher.update(fields);
  if (ret.error == 1) return F.returnMsg(400, ret.msg, 3, ret.data);
  return F.returnMsg(200, ret.msg, 3, ret.data);
};

/**
 *@todo 获取列表
 *  * @param Env
 */
api.list = function*(Env) {
  Env.I = yield F.Init(Env, [1]);
  if (Env.I.errors) {
    return F.returnMsg(400, Env.I.errors.msg, Env.I.errors.level);
  }
  var fields = Env.I;

  let ret = yield wikiDispatcher.list(fields);
  if (ret.error == 1) return F.returnMsg(400, ret.msg, 3, ret.data);
  return F.returnMsg(200, ret.msg, 3, ret.data);
};

/**
 *@todo 获取详情
 */
api.detail = function*(Env) {
  Env.I = yield F.Init(Env, [1, 2]);
  if (Env.I.errors) {
    return F.returnMsg(400, Env.I.errors.msg, Env.I.errors.level);
  }
  var fields = Env.I;

  let ret = yield wikiDispatcher.detail(fields);
  if (ret.error == 1) return F.returnMsg(400, ret.msg, 3, ret.data);
  return F.returnMsg(200, 'OK', 3, ret.data);
};


/**
 @todo raw query
 * @param Env
 */
api.rawquery = function*(Env) {

  let result = yield wikiDispatcher.rawQuery('select id from mh_wiki ');
  return result;
};